<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
  
  //message在哪一个范围内可以使用，称之为message的作用域
  //全局变量：全局作用域
  var message="Hello World"
  
  if(true){
    console.log(message)
  }
  function foo() {
    console.log("在foo中访问",message)
  }
  foo()
  //ES5之前是没有块级作用域(var定义的变量是没有块级作用域的)
  {
    count =100
    console.log("在代码块中访问count:",count)
  }
  console.log("在代码块外边访问count",count)
  for(var i=0;i<3;i++){
    var foo="foo"
  }
  console.log("for循环中的foo",foo)
  console.log("for循环中的i",i)
  //3.ES5之前函数代码块是会形成自己的作用域
  function test(){
    var bar="bar"
  }
  test()
  // console.log("test函数外边访问bar:",bar)
  //函数有自己的作用域：函数内部定义的变量只有函数内部能访问到
  function sayHello(){
    var nickname="kobe"
    function hi(){
      console.log("hi function~")
      console.log("在hi函数中访问nickname",nickname)
    }
    hi()
  }
  sayHello()
  // console.log("sayHello外面访问nickname:",nickname)
  </script>
</body>
</html>